package com.resume.crm01.controller;

import com.resume.crm01.model.CURDResult;
import com.resume.crm01.model.CourseOrder;
import com.resume.crm01.model.PageResult;
import com.resume.crm01.service.ICourseOrderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.thymeleaf.util.StringUtils;

import java.util.ArrayList;
import java.util.List;

@Controller
@RequestMapping("/courseorder")
public class CourseOrderController {
    @Autowired
    private ICourseOrderService courseOrderService;

    @RequestMapping("/list")
    public String index(){
        return "courseorder/list";
    }

    @RequestMapping("/listJson")
    @ResponseBody
    public PageResult<CourseOrder> listJson(CourseOrder condition,int page,int limit){
        PageResult<CourseOrder> result = courseOrderService.findPageResult(condition,page,limit);
        return result;
    }

    @RequestMapping("/add")
    public String add(){
        return  "courseorder/add";
    }

    @RequestMapping("/save")
    @ResponseBody
    public CURDResult save(CourseOrder order){
        System.out.println(order);
        CURDResult rslt = new CURDResult();

        /**
         * 本身表格提交的Json表单是没有Id值,因为数据表中的Id值是uuid类型的，可以自动生成，
         * 因此可以判断Order对象是否有Id值，来判断该操作是查看详情还是提交
         *
         * 如果Id为空，则表明该表单是一个查看详情操作;
         * 如果Id不为空(edit页面中Id值作为隐藏域而存在)，则表明该表单是一个修改编辑操作
         */
        if(StringUtils.isEmpty(order.getOrder_id())){
            courseOrderService.save(order);
        }else{
            System.out.println("修改");
            courseOrderService.update(order);
        }

        return rslt;
    }

    @RequestMapping("/detail")
    public String detail(Model model, String order_id){
        CourseOrder order = courseOrderService.findByOrderId(order_id);

        //Model属性绑定，对应参数通过Model传递到courseorder/details页面
        model.addAttribute("order",order);

        return "courseorder/detail";
    }

    @RequestMapping("/edit")
    public String edit(Model model, String order_id){
        //编辑逻辑和查看详情的区别,在save中有判断和处理
        CourseOrder order = courseOrderService.findByOrderId(order_id);
        model.addAttribute("order",order);
        return "courseorder/edit";
    }

    @RequestMapping("/delete")
    @ResponseBody
    public CURDResult delete(String order_id){
        CURDResult rslt = new CURDResult();
        courseOrderService.delete(order_id);
        return rslt;
    }

}
